home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 1998 August / PC Plus SuperCD 50a Issue 142 (CD142a) (August 1998).iso / trial / demon / TURNPIKE.1 / CLASSES.ZIP / sun / NET / WWW / MimeTable.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-04-14  |  1.3 KB  |  120 lines

  1. package sun.net.www;
  2.  
  3. import java.io.InputStream;
  4.  
  5. abstract class MimeTable {
  6.    private MimeEntry root;
  7.    private MimeEntry last;
  8.  
  9.    void add(MimeEntry var1) {
  10.       if (var1 != null) {
  11.          if (this.last == null) {
  12.             this.root = var1;
  13.          } else {
  14.             this.last.next = var1;
  15.          }
  16.  
  17.          this.last = var1;
  18.       }
  19.  
  20.    }
  21.  
  22.    MimeEntry find(String var1) {
  23.       for(MimeEntry var2 = this.root; var2 != null; var2 = var2.next) {
  24.          if (var2.matches(var1)) {
  25.             return var2;
  26.          }
  27.       }
  28.  
  29.       return null;
  30.    }
  31.  
  32.    void ParseMailcap(InputStream var1) {
  33.       try {
  34.          char[] var2 = new char[200];
  35.          int var3 = 0;
  36.          int var5 = 0;
  37.          int var6 = -1;
  38.          String var7 = null;
  39.          String var8 = null;
  40.          String var9 = null;
  41.  
  42.          int var4;
  43.          while((var4 = var1.read()) >= 0) {
  44.             if (var4 != 59 && var4 != 10) {
  45.                if (var4 == 35 && var3 == 0) {
  46.                   while((var4 = var1.read()) >= 0 && var4 != 10) {
  47.                   }
  48.                } else {
  49.                   if (var4 == 92) {
  50.                      var4 = var1.read();
  51.                      if (var4 == 10) {
  52.                         continue;
  53.                      }
  54.                   }
  55.  
  56.                   if ((var4 > 32 || var3 > 0) && var3 < var2.length) {
  57.                      if (var4 == 61) {
  58.                         var6 = var3;
  59.                      }
  60.  
  61.                      var2[var3++] = (char)var4;
  62.                   }
  63.                }
  64.             } else {
  65.                while(var3 > 0 && var2[var3 - 1] < ' ') {
  66.                   --var3;
  67.                }
  68.  
  69.                if (var5 <= 1) {
  70.                   if (var5 == 0 && var3 > 0 && var2[var3 - 1] == '*') {
  71.                      --var3;
  72.                   }
  73.  
  74.                   String var10;
  75.                   if (var3 == 0) {
  76.                      var10 = "";
  77.                   } else {
  78.                      var10 = String.copyValueOf(var2, 0, var3);
  79.                   }
  80.  
  81.                   if (var5 == 0) {
  82.                      var7 = var10;
  83.                   } else {
  84.                      var8 = var10;
  85.                   }
  86.                } else if (var3 > 0) {
  87.                   String var11;
  88.                   String var14;
  89.                   if (var6 >= 0) {
  90.                      var14 = String.valueOf(var2, 0, var6);
  91.                      var11 = String.copyValueOf(var2, var6 + 1, var3 - var6 - 1);
  92.                   } else {
  93.                      var14 = String.valueOf(var2, 0, var3);
  94.                      var11 = null;
  95.                   }
  96.  
  97.                   if (var14.equalsIgnoreCase("nametemplate")) {
  98.                      var9 = var11;
  99.                   }
  100.                }
  101.  
  102.                ++var5;
  103.                var3 = 0;
  104.                if (var4 == 10) {
  105.                   if (var5 >= 2) {
  106.                      this.add(new MimeEntry(var7.toLowerCase(), var8, var9));
  107.                   }
  108.  
  109.                   var5 = 0;
  110.                }
  111.             }
  112.          }
  113.  
  114.       } catch (Exception var12) {
  115.       }
  116.    }
  117.  
  118.    abstract String TempTemplate();
  119. }
  120.